package com.yl.chainStore.entity.pay

import com.baomidou.mybatisplus.annotation.IdType
import com.baomidou.mybatisplus.annotation.TableField
import com.baomidou.mybatisplus.annotation.TableId
import com.baomidou.mybatisplus.annotation.TableName
import com.yl.chainStore.common.enums.TypeEnum
import com.yl.common.annotation.NoArg
import com.yl.common.getContext

/**
 * <p>
 *
 * </p>
 *
 * @author cxw
 * @since 2021-07-05
 */
@NoArg
@TableName("sys_company_pay_item_type")
data class SysCompanyPayItemType(

	/**
	 * id
	 */
	@TableId(value = "id", type = IdType.AUTO)
	var id: Long,

	/**
	 * 上级id
	 */
	@TableField("super_id")
	var superId: Long = 0,

	@TableField(exist = false)
	var superType: SysCompanyPayItemType? = null,

	/**
	 * 显示名称
	 */
	@TableField("name")
	var name: String,

	/**
	 * 数据有效性
	 */
	@TableField("enabled")
	var enabled: Int = 1,

	/**
	 * 显示排序（小到大）
	 */
	@TableField("order_num")
	var orderNum: Int = 1,

	/**
	 * 部门id（存在值时为私有分类）
	 */
	@TableField("dept_id")
	var deptId: Long? = null,

	/**
	 * 默认耗材
	 */
	@TableField("item_type")
	var itemType: TypeEnum = TypeEnum.PAY_ITEM_CONSUMABLES,

	@TableField(exist = false)
	var children: List<SysCompanyPayItemType>? = null,

	@TableField(exist = false)
	var items: List<SysCompanyPayItem>? = null
) {
	val canUpdate: Boolean
		get() {
			if (deptId != null && deptId == getContext().subCompanyId) {
				return true
			}
			return false
		}
}
